import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // 公共数据源
  state: {
    count: 0
  },
  // 用于变更数据
  mutations: {
    add(state) {
      // 变更状态
      state.count++
    },
    subN(state, step) {
      state.count -= step
    },
    subX(state) {
      state.count += 100
    },
    addN(state) {
      state.count += 1
    }
  },
  // 用于异步任务
  actions: {
    // 异步+1
    addAsync(context) {
      setTimeout(() => {
        console.log(context)
        context.commit('add')
      }, 1000)
    },
    addAsyncParams(context, step) {
      setTimeout(() => {
        context.commit('addN')
      }, 1000)
    },
    addAsyncParams1(context) {
      setTimeout(() => {
        context.commit('addN')
      }, 1000)
    }
  },
  getters: {
    showNum(state) {
      return
    }
  },
  modules: {
  }
})
